#ifndef PICSHOW_H
#define PICSHOW_H

#include <QDialog>
#include <QPropertyAnimation>
#include <QString>

namespace Ui {
class PicShow;
}

class PicShow : public QDialog
{
    Q_OBJECT

public:
    explicit PicShow(QWidget *parent = nullptr);
    ~PicShow();

    // 图像重绘(会有缩放的效果)
    // 但是写完发现还是一样没有看到 nextBtn，MainWindow.cpp 中 this->setMinimumSize(1629, 869); // 设置一个最小值
    void ReloadPic();

protected:
    bool event(QEvent *event) override;

private:
    void ShowPreNextBtns(bool b_show);
    bool b_btnvisible; // 记录按钮是显示的还是隐藏的(可见不可见)

    Ui::PicShow *ui;

    QPropertyAnimation* _animation_show_pre;
    QPropertyAnimation* _animation_show_next;

    // 存储一下 proLayout 界面双击的图片
    QString _selected_path;
    QPixmap _pix_map;

public slots:
    // proLayout(ProTree) 界面双击图片一路触发过来的槽函数 ---> picLayout(PicShow) 界面展示来显示
    void SlotSelectItem(const QString& path);

    void SlotUpdatePic(const QString& currentPath); // 把处理好的，要显示的图片显示出来

    void SlotClearSelected(); // 点击关闭的项目，正好是当前正在显示的项目 ---> 清空

signals:
    // _picshow 界面 QPushButton 被点击产生的 clicked 信号 connect 传递给 _prcshow 的信号，_picshow 的信号再在 MainWindow.cpp 的构造函数中传递给 _protree 对应的槽函数
    void SigNextClicked(bool ckecked = false);
    void SigPreClicked(bool ckecked = false);
};

#endif // PICSHOW_H
